const joi = require('joi')
    //导入joi 定义验证规则

/**
 * string() 值必须是字符串
 * alphanum() 值只能是包含 a-zA-Z0-9 的字符串
 * min(length) 最小长度
 * max(length) 最大长度
 * required() 值是必填项，不能为 undefined
 * pattern(正则表达式) 值必须符合正则表达式的规则
 */

//定义用户名的验证规则
const username = joi.string().alphanum().min(1).required()

//定义密码的验证规则
const password = joi.string().pattern(/^[\S]{6,16}$/).required()
    //定义昵称验证规则
const nickname = joi.string().required()
    // 定义邮箱验证规则
const email = joi.string().email().required()
    //定义id验证规则
const id = joi.number().integer().required()
const avater = joi.string().dataUri().required()

//向外共享注册规则
exports.reg_login_schema = {
        body: {
            username, //  username = username  ES6语法  可以简写
            password
        }
    }
    //向外共享更新用户信息验证规则
exports.update_userinfo_schema = {
        body: {
            username,
            nickname,
            email
        },
        auth: { id }
    }
    // 向外共享更新密码验证规则
exports.update_password_schema = {
        body: {
            oldPwd: password,
            newPwd: joi.not(joi.ref('oldPwd')).concat(password)
        },
        auth: {
            id
        }
    }
    // 向外共享更新头像验证规则
exports.update_avater_schema = {
        body: {
            avater
        },
        auth: {
            id
        }
    }
    //向外共享更新头像验证规则
exports.update_avater_schema = {
    body: {
        avater
    }
}